$(document).ready(function() {

	renderCustomer();
	renderDataTable();
	
	$("#btnSave").click(function(){
		
		$('#error_message').addClass('hide');  
		$('#success_message').addClass('hide'); 
		
		var roleId = $('#inputRoleId').val();
		var roleName = $('#inputRoleName').val();
		var selectedValue = $("#selectCustomer").val();
		var selectedText = $("#selectCustomer option:selected").text();

		if(roleId.trim().length == 0 || roleName.trim().length == 0)
		{
			$('#modal_content').html("กรุณากรอกข้อมูลให้ครบถ้วน");
			$('#warningModal').modal();
		}
		else if(isNaN(roleId.trim()) || roleId.indexOf(".") >= 0)
		{
			$('#modal_content').html("กรุณากรอกข้อมูลรหัสเป็นตัวเลขจำนวนเต็ม");
			$('#warningModal').modal();
		}
		else if(selectedValue==""){
			$('#modal_content').html("กรุณาเลือกข้อมูลลูกค้า");
			$('#warningModal').modal();
		}
		else
		{
			var str = "คุณต้องการบันทึกข้อมูลหน้าที่การใช้บริการ<br>";
			str += "&nbsp;&nbsp;&nbsp;รหัส : &nbsp;" + roleId + "<br>";
			str += "&nbsp;&nbsp;&nbsp;ชื่อหน้าที่การใช้บริการ : &nbsp;" + roleName + "<br>";
			str += "&nbsp;&nbsp;&nbsp;ชื่อลูกค้า : &nbsp;" + selectedText + "<br>";
			
			$('#modal_content_confirmSaveModal').html(str);
			$('#confirmSaveModal').modal();
		}
		
	});
	
	$("#btnClear").click(function(){
		$('#error_message').addClass('hide');  
		$('#success_message').addClass('hide'); 
		
		$("#inputRoleId").val("");
		$("#inputRoleName").val("");
		$("#oldCustomerId").val("");
		$("#inputRoleId").prop('disabled', false);
		$("select#selectCustomer").prop('selectedIndex', 0);
		
		var table = $('#customerDataTable').DataTable();
		table.$('tr').removeClass('selected');
	});
	
	$("#inputRoleId").keyup(function() { 
		$('#error_message').addClass('hide');  
		$('#success_message').addClass('hide'); 
	});
	
	$("#inputRoleName").keyup(function() { 
		$('#error_message').addClass('hide');  
		$('#success_message').addClass('hide'); 
	});

});

function linkData(data1,data2) {
	var selectedValue = $("#selectCustomer").val();
	var str = selectedValue.split(",");
	var packageID = str[0];

	
	$.getJSON("CS89000Srvl", {process_type : "chkPackageID",packageID : packageID}, function(result){
		
		if(result.values==0){
			$('#modal_content_main').html("<p><span class='fa-stack fa-lg mr-10' style=' color:#FC0'> <i class='fa fa-exclamation-triangle fa-stack-2x'></i></span>กรุณาไปทำการกำหนดเมนูของแพ็คเกจก่อน</p>");
			$('#mainModal').modal();
			$("select#selectCustomer").prop('selectedIndex', 0);
		}
		else{
			$("#vaRoleId").val(data1);
			$("#vaNameRole").val(data2);
			$("#processType").val();
			document.getElementById("MenuRole").submit();
		}
	   }); 
}

function renderCustomer() {

    $.getJSON("CS89000Srvl", {process_type: "getDataCustomer"}, function(result){
    	var options = '';
		options += '<option value="">-- เลือกลูกค้า --</option>';
		for (var i = 0; i < result.values.length; i++) {
			options += '<option value="' + result.values[i] + '">' + result.messages[i] + '</option>';
		}
	    $("select#selectCustomer").html(options);
    }); 
}

function renderDataTable() {
	
	var db = getDbStatus();
	
	if(db == false)
	{
		$("#content_error").text("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
		$('#error_message').removeClass('hide');
	}
	
	$("#customerDataTable")
			.DataTable(
					{
						"oLanguage" : {
							"oPaginate" : {
								"sFirst" : "หน้าแรก",// ปุ่มกลับมาหน้าแรก
								"sLast" : "หนัาสุดท้าย",// ปุ่มไปหน้าสุดท้าย
								"sNext" : "ถัดไป", // ปุ่มหน้าถัดไป
								"sPrevious" : "ก่อนหน้า" // ปุ่ม กลับ
							},
							"sLengthMenu" : "แสดง _MENU_ รายการ ต่อหน้า",
							"sZeroRecords" : "ไม่พบข้อมูลที่ค้นหา",
							"sInfo" : "แสดง _START_ ถึง _END_ จากทั้งหมด _TOTAL_ รายการ",
							"sEmptyTable" : "ไม่พบรายการข้อมูล",
							"sLoadingRecords" : "ระบบกำลังประมวลผล กรุณารอซักครู่",
							"sProcessing" : "ประมวลผลข้อมูล",
							"sInfoEmpty" : "ไม่พบรายการข้อมูลที่แสดง",
							"sInfoFiltered" : "(จากทั้งหมด _MAX_ รายการ)",
							"sSearch" : "ค้นหา :"
						},
						"searching" : true,
						"aoColumns" : [
								{
									"sTitle" : "ลำดับ",
									sClass : "alignCenter",
									sWidth : '50px'
								},
								{
									"sTitle" : "รหัส",
									sClass : "alignCenter",
									sWidth : '100px',
								},
								{
									"sTitle" : "ชื่อหน้าที่การใช้บริการ",
									sClass : "textLeft",
								},
								{
									"sTitle" : "กำหนดเมนู",
									sClass : "alignCenter",
								},
								{
									"sTitle" : "จัดการ",
									sClass : "alignCenter table-action",
									sWidth : '100px',
									"bSortable" : false,
									"mRender" : function(data, type, full) {
										return '<i class="fa fa-exchange" title="ลิงค์ช้อมูล" id="linkButton" onclick="linkData(\'' 
												+ full[1] 
												+ '\',\'' 
												+ full[2]
												+'\');"></i> '
				                				+ '<i class="fa fa-wrench" title="แก้ไขข้อมูล" id="editButton" onclick="editData(\''
												+ full[0]
												+ '\',\''
												+ full[1]
												+ '\',\''
												+ full[2]
												+ '\');"></i> '
												+ '<i class="fa fa-trash-o" title="ลบข้อมูล" onclick="deleteData(\''
												+ full[0]
												+ '\', \''
												+ full[1]
												+ '\', \''
												+ full[2]
												+ '\');"></i>';
									}
								} ],
						"sPaginationType" : "full_numbers",// แสดงตัวแบ่งหน้า
						"bLengthChange" : true, // แสดงจำนวน record
						// ที่จะแสดงในตาราง
						"iDisplayLength" : 10, // กำหนดค่า default ของจำนวน
						// record
						"bScrollCollapse" : true,
						"aLengthMenu" : [ [ 10, 25, 50, 100, -1 ], // จำนวนที่แสดงในตาราง
						[ 10, 25, 50, 100, "ทั้งหมด" ] // จำนวนที่ให้เลือก
						],
						//"iDeferLoading" : 11,
						"bProcessing" : true, // เขียนโค้ดโดยระบุให้ไปดึงข้อมูลจากไฟล์
						"bServerSide" : true,
						"sDom" : 'Rlfrtip',
						"sAjaxSource" : "CS89000Srvl?process_type=getDataTable",
						 
					});
}

function searchData() {

	var selectedValue = $("#selectCustomer").val();
	var str = selectedValue.split(",");
	var packageID = str[0];
	var siteID = str[1];
	
	if(selectedValue==""){
		siteID="Default";
	}

	$('#customerDataTable').DataTable().column(0).search(siteID);
	$('#customerDataTable').DataTable().column(1).search(packageID);
	$('#customerDataTable').DataTable().draw();

}

function getDbStatus() {

	var dbStatus = false;
	
	$.ajax({
		type : 'POST',
		url : "CS81000Srvl",
		data : {
			process_type : "db",
		},
		async : false,
		success : function(data) {
			
			if(data == "success")
				dbStatus = true;
			else
				dbStatus = false;
		},
		error : function()
		{
			dbStatus = false;
		}
	});
	
	return dbStatus;
}

function SaveCommand()
{	
	
	$('#confirmSaveModal').modal('hide');
	
	$('#error_message').addClass('hide');  
	$('#success_message').addClass('hide'); 

	var connect_db = getDbStatus();

	if (connect_db == false) {
		// Connect database fail
		$("#content_error").text("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
		$('#error_message').removeClass('hide');
	}
	else
	{
		var roleId = $('#inputRoleId').val();
		var roleName = $('#inputRoleName').val();
		var oldroleId = $('#oldRoleId').val();
		var selectedValue = $("#selectCustomer").val();
		var str = selectedValue.split(",");
		var siteID = str[1];

		// Insert new data
		if(oldroleId == "")
		{
			var jqXHR = $.ajax({
				type : 'POST',
				url : "CS89000Srvl",
				data : {
					process_type : "addRole" , 
					roleId : roleId.trim(),
					roleName : roleName.trim(),
					siteID : siteID.trim(),
				},
				async : false,
				success : function(data) 
				{
					if(data == "success")
					{
						$("#inputRoleId").val("");
						$("#inputRoleName").val("");
						$("#oldRoleId").val("");
						$("#inputRoleId").prop('disabled', false);
						$('#modal_content_main').html("<p><span class='fa-stack fa-lg mr-10' style='color:#0C0'> <i class='fa fa-circle fa-stack-2x'></i> <i class='fa fa-check fa-stack-1x fa-inverse'></i> </span>บันทึกข้อมูลหน้าที่การใช้บริการเสร็จสมบูรณ์</p>");
						$('#mainModal').modal();
						searchData();
					}
					else if(data == "connect_db_fail")
					{
						$("#content_error").text("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
						$('#error_message').removeClass('hide');
						
						$('#modal_content').html("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
						$('#warningModal').modal();
					}
					else if(data=="duplicate")
					{
						$('#modal_content').html("มีรหัสหรือชื่อหน้าที่การใช้บริการนี้อยู่ในระบบแล้ว กรุณากรอกข้อมูลใหม่อีกครั้ง");
						$('#warningModal').modal();
					}
					else if(data=="fail")
					{
						$('#modal_content').html("บันทึกข้อมูลหน้าที่การใช้บริการล้มเหลว");
						$('#warningModal').modal();
					}
					else
					{
						$('#modal_content').html("บันทึกข้อมูลหน้าที่การใช้บริการล้มเหลว");
						$('#warningModal').modal();
					}
				},
				error : function()
				{
					$('#modal_content').html("บันทึกข้อมูลผิดพลาด");
					$('#warningModal').modal();
				}
			});
		}
		// update old data
		else
		{
			var jqXHR = $.ajax({
				type : 'POST',
				url : "CS89000Srvl",
				data : {
					process_type : "editRole" , 
					roleId : roleId.trim(),
					siteID : siteID.trim(),
					roleName : roleName.trim(),
					oldroleId : oldroleId.trim(),
				},
				async : false,
				success : function(data) 
				{
					if(data == "success")
					{
						$("#inputRoleId").val("");
						$("#inputRoleName").val("");
						$("#oldRoleId").val("");
						$("#inputRoleId").prop('disabled', false);
						$('#modal_content_main').html("<p><span class='fa-stack fa-lg mr-10' style='color:#0C0'> <i class='fa fa-circle fa-stack-2x'></i> <i class='fa fa-check fa-stack-1x fa-inverse'></i> </span>บันทึกข้อมูลหน้าที่การใช้บริการเสร็จสมบูรณ์</p>");
						$('#mainModal').modal();
						searchData();
					}
					else if(data == "connect_db_fail")
					{
						$("#content_error").text("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
						$('#error_message').removeClass('hide');
						
						$('#modal_content').html("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
						$('#warningModal').modal();
					}
					else if(data=="no_role")
					{
						$('#modal_content').html("ไม่พบข้อมูลหน้าที่การใช้บริการนี้อยู่ในระบบ  กรุณาลองใหม่อีกครั้ง");
						$('#warningModal').modal();
					}
					else if(data == "duplicate")
					{
						$('#modal_content').html("มีรหัสหรือชื่อหน้าที่การใช้บริการนี้อยู่ในระบบแล้ว กรุณากรอกข้อมูลใหม่อีกครั้ง");
						$('#warningModal').modal();
					}
					else if(data=="fail")
					{
						$('#modal_content').html("บันทึกข้อมูลหน้าที่การใช้บริการล้มเหลว");
						$('#warningModal').modal();
					}
					else
					{
						$('#modal_content').html("บันทึกข้อมูลหน้าที่การใช้บริการล้มเหลว");
						$('#warningModal').modal();
					}
				},
				error : function()
				{
					$('#modal_content').html("บันทึกข้อมูลผิดพลาด");
					$('#warningModal').modal();
				}
			});
		}
		
		
	}
}

function editData(index, id, name)
{
	var table = $('#customerDataTable').DataTable();
	table.$('tr').removeClass('selected');
	
	$('#customerDataTable tr').each(function(row, tr){
		
		var index_search = $(tr).find('td:eq(0)').text();
		if(index == index_search)
		{
			$(tr).addClass('selected');
		}
	});
	
	$("#inputRoleId").val(id);
	$("#inputRoleName").val(name);
	$("#oldRoleId").val(id);

	$("#inputRoleId").prop('disabled', true);
}

function deleteData(index, id, name)
{
	var table = $('#customerDataTable').DataTable();
	table.$('tr').removeClass('selected');

	$("#inputRoleId").val("");
	$("#inputRoleName").val("");
	$("#oldCustomerId").val("");
	
	$("#deleteRoleId").val(id);

	var str = "คุณต้องการลบข้อมูลหน้าที่การใช้บริการ<br>";
	str += "&nbsp;&nbsp;&nbsp;รหัส : &nbsp;" + id + "<br>";
	str += "&nbsp;&nbsp;&nbsp;ชื่อหน้าที่การใช้บริการ : &nbsp;" + name + "<br>";
	
	$('#modal_content_confirmModal').html(str);
	$('#confirmDeleteModal').modal();
}

function DeleteCommand()
{
	$('#confirmDeleteModal').modal('hide');
	
	$('#error_message').addClass('hide');  
	$('#success_message').addClass('hide'); 
	
	var roleId = $("#deleteRoleId").val();
	
	var jqXHR = $.ajax({
		type : 'POST',
		url : "CS89000Srvl",
		data : {
			process_type : "deleteRole" , 
			roleId : roleId.trim(),
		},
		async : false,
		success : function(data) 
		{
			if(data == "success")
			{
				$('#modal_content_main').html("<p><span class='fa-stack fa-lg mr-10' style='color:#0C0'> <i class='fa fa-circle fa-stack-2x'></i> <i class='fa fa-check fa-stack-1x fa-inverse'></i> </span>ลบข้อมูลหน้าที่การใช้บริการเสร็จสมบูรณ์</p>");
				$('#mainModal').modal();
				searchData();
			}
			else if(data == "connect_db_fail")
			{
				$("#content_error").text("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
				$('#error_message').removeClass('hide');
				
				$('#modal_content').html("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
				$('#warningModal').modal();
			}
			else if(data=="fail")
			{
				$('#modal_content').html("ลบข้อมูลหน้าที่การใช้บริการล้มเหลว");
				$('#warningModal').modal();
			}
			else if(data=="no_role")
			{
				$('#modal_content').html("ไม่พบข้อมูลหน้าที่การใช้บริการนี้อยู่ในระบบ  กรุณาลองใหม่อีกครั้ง");
				$('#warningModal').modal();
			}
			else
			{
				$('#modal_content').html("ลบข้อมูลหน้าที่การใช้บริการล้มเหลว");
				$('#warningModal').modal();
			}
		},
		error : function()
		{
			$('#modal_content').html("ลบข้อมูลผิดพลาด");
			$('#warningModal').modal();
		}
	});
}

